package iso3.pt.model;


import java.util.HashSet;
import java.util.Set;

public class Asignatura
{
	private Integer id;
	private Integer codigo;
	private String nombre;
	private Float creditos;
	
	private Profesor profesor;
	private Set<Unidad> unidades;
	private Set<Alumno> alumnos;
	
	
	protected Asignatura()
	{
		
	}
	
	public Asignatura(Integer codigo, String nombre, Float creditos) 
	{
		super();
		this.codigo = codigo;
		this.nombre = nombre;
		this.creditos = creditos;
		this.unidades = new HashSet<Unidad>();
		this.alumnos = new HashSet<Alumno>();
	}
	
	
	public Integer getId()
	{
		return id;
	}
	private void setId(Integer id)
	{
		this.id = id;
	}
	public Integer getCodigo()
	{
		return codigo;
	}
	public void setCodigo(Integer codigo)
	{
		this.codigo = codigo;
	}
	public String getNombre()
	{
		return nombre;
	}
	public void setNombre(String nombre)
	{
		this.nombre = nombre;
	}
	public Float getCreditos()
	{
		return creditos;
	}
	public void setCreditos(Float creditos)
	{
		this.creditos = creditos;
	}
	public Profesor getProfesor()
	{
		return profesor;
	}
	public void setProfesor(Profesor profesor)
	{
		this.profesor = profesor;
	}
	
	public Set<Unidad> getUnidades()
	{
		return unidades;
	}
	
	public void setUnidades(Set<Unidad> unidades)
	{
		this.unidades = unidades;
	}
	
	
	public void addUnidad(Unidad unidad)
	{
		this.unidades.add(unidad);
	}
	
	public void removeUnidad(Unidad unidad)
	{
		this.unidades.remove(unidad);
	}
	
	
	public Set<Alumno> getAlumnos()
	{
		return alumnos;
	}
	
	public void setAlumnos(Set<Alumno> alumnos)
	{
		this.alumnos = alumnos;
	}
	
	
	public void addAlumno(Alumno alumno)
	{
		this.alumnos.add(alumno);
	}
	
	public void removeAlumno(Alumno alumno)
	{
		this.alumnos.remove(alumno);
	}
	
	public boolean estaMatriculado(Alumno alumno)
	{
		
		return (this.getAlumnos().contains(alumno));	
	}
	
	public String toString()
	{
		return this.nombre;
		//return "Asignatura -> (ID: " + this.id + "  CODIGO: " + this.codigo + "  NOMBRE: " + this.nombre + "  CREDITOS: " + this.creditos + ")";
	}
}
